﻿namespace PARCS.Core.Contracts
{
    /// <summary>
    /// Performance calculator. To use own parfomance calculator - particular task can use Task.SetPerfomanceCalculator(IPerformanceCalculator)
    /// </summary>
    public interface IPerformanceCalculator
    {
        /// <summary>
        /// Calculate general perfomace by two parametrs.
        /// </summary>
        /// <param name="performance">Machine's perfomance - from 0 to 1. Bigger value is better</param>
        /// <param name="ping">Ping. Less value is better</param>
        /// <returns>Bigger value is better</returns>
        double Calculate(double performance, double ping);
    }
}
